/**
 * <strong>Title : WorkUnitTypeDao.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.cm.dao<br>
 * </strong> <strong>Description : </strong>@作业单元类型持久层接口@<br>
 * <strong>Create on : 2015年9月25日 上午11:25:55<br>
 * </strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
package cn.b.sky.mes.cm.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.cm.model.WorkUnit;
import cn.b.sky.mes.cm.model.WorkUnitType;
import cn.b.sky.mes.cm.model.WorkUnitTypeAssign;
import cn.b.sky.mes.cm.model.condition.WorkUnitTypeCondition;

/**
 * <strong>Title : WorkUnitTypeDao.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.cm.dao<br>
 * </strong> <strong>Description : </strong>@作业单元类型持久层@<br>
 * <strong>Create on : 2015年9月25日 上午11:25:55<br>
 * </strong>
 * <p>
 * 
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface WorkUnitTypeDao {

  /**
   * <strong>Title : getWorkUnitTypeExactCount<br>
   * </strong> <strong>Description : </strong>@获取同一工厂下作业单元类型条数@<br>
   * <strong>Create on : 2015年9月25日 下午7:10:11<br>
   * </strong>
   * <p>
   * 
   * @param workUnitTypeCondition
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int getWorkUnitTypeExactCount(WorkUnitTypeCondition workUnitTypeCondition);

  /**
   * <strong>Title : getWorkUnitType<br>
   * </strong> <strong>Description : </strong>@根据条件获取作业单元类型实体@<br>
   * <strong>Create on : 2015年9月25日 下午7:16:32<br>
   * </strong>
   * <p>
   * 
   * @param workUnitTypeCondition
   * @return WorkUnitType
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public WorkUnitType getWorkUnitType(WorkUnitTypeCondition workUnitCondition);

  /**
   * <strong>Title : validateRefFromProcessOperation<br>
   * </strong> <strong>Description : </strong>@验证在cm_ProcessOperation
   * 表中是否无关联数据@<br>
   * <strong>Create on : 2015年9月25日 下午3:00:19<br>
   * </strong>
   * <p>
   * 
   * @param workUnitType
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   * @param string
   */
  public int validateRefFromProcessOperation(@Param("workUnitType") String workUnitType,
      @Param("siteCode") String siteCode);

  /**
   * <strong>Title : selectWorkUnitTypeList<br>
   * </strong> <strong>Description : </strong>@获取作业单元类型列表@<br>
   * <strong>Create on : 2015年9月25日 下午3:09:41<br>
   * </strong>
   * <p>
   * 
   * @param workUnitTypeCondition
   * @return List<WorkUnitType>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<WorkUnitType> selectWorkUnitTypeList(WorkUnitTypeCondition workUnitTypeCondition);

  /**
   * <strong>Title : getWorkUnitTypeCount<br>
   * </strong> <strong>Description : </strong>@获取作业单元类型总数@<br>
   * <strong>Create on : 2015年9月25日 下午3:10:04<br>
   * </strong>
   * <p>
   * 
   * @param workUnitTypeCondition
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int getWorkUnitTypeCount(WorkUnitTypeCondition workUnitTypeCondition);

  /**
   * <strong>Title : insertWorkUnitType<br>
   * </strong> <strong>Description : </strong>@插入作业单元类型@<br>
   * <strong>Create on : 2015年9月25日 下午3:10:19<br>
   * </strong>
   * <p>
   * 
   * @param workUnitType
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void insertWorkUnitType(WorkUnitType workUnitType);

  /**
   * <strong>Title : updateWorkUnitType<br>
   * </strong> <strong>Description : </strong>@编辑、更新作业单元类型@<br>
   * <strong>Create on : 2015年9月25日 下午3:10:26<br>
   * </strong>
   * <p>
   * 
   * @param workUnitType
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateWorkUnitType(WorkUnitType workUnitType);

  /**
   * <strong>Title : deleteWorkUnitTypes<br>
   * </strong> <strong>Description : </strong>@批量删除作业单元类型@<br>
   * <strong>Create on : 2015年9月25日 下午3:10:33<br>
   * </strong>
   * <p>
   * 
   * @param workUnitType
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   * @param string
   */
  public void deleteWorkUnitTypes(@Param("workUnitType") String workUnitType, @Param("siteCode") String siteCode);

  /**
   * <strong>Title : insertWorkUnitTypeAssign<br>
   * </strong> <strong>Description : </strong>插入作业单元分配表<br>
   * <strong>Create on : 2015年9月28日 下午9:14:55<br>
   * </strong>
   * <p>
   * 
   * @param assign
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void insertWorkUnitTypeAssign(WorkUnitTypeAssign assign);

  /**
   * <strong>Title : selectAssignByUnitType<br>
   * </strong> <strong>Description : </strong>根据作业单元类型，查询作业单元分配表<br>
   * <strong>Create on : 2015年9月29日 上午9:19:57<br>
   * </strong>
   * <p>
   * 
   * @param assign
   * @return List<WorkUnitTypeAssign>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<WorkUnit> selectAssignByUnitType(WorkUnitTypeAssign assign);

  /**
   * <strong>Title : deleterAssignByUnitType<br>
   * </strong> <strong>Description : </strong>删除作业单元分配表<br>
   * <strong>Create on : 2015年9月29日 上午10:40:38<br>
   * </strong>
   * <p>
   * 
   * @param workUnitTypeCode
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleterAssignByUnitType(WorkUnitTypeAssign workUnitTypeAssign);

  /**
   * <strong>Title : selectAssignByUnit<br>
   * </strong> <strong>Description : </strong>根据作业单元，查询作业单元分配表<br>
   * <strong>Create on : 2015年9月29日 下午1:35:46<br>
   * </strong>
   * <p>
   * 
   * @param assign
   * @return List<WorkUnitType>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<WorkUnitType> selectAssignByUnit(WorkUnitTypeAssign assign);

  /**
   * 
   * <strong>Title : selectWorkUnitTypeSuggests<br>
   * </strong> <strong>Description : </strong>工作单元类型搜索建议<br>
   * <strong>Create on : 2016年4月11日 下午7:30:57<br>
   * </strong>
   * <p>
   * 
   * @param condition
   * @return List<WorkUnitType>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<WorkUnitType> selectWorkUnitTypeSuggests(WorkUnitTypeCondition condition);

}
